<?php

//classe para upload de imagem

class ControllerImagem {

    private $caminho = "../public/";
    private $estensao = ".jpeg";

    function extensoes($arquivo, $extensoes, $tipo) {
        //variavel $extensoes deve ser parecida com isso "jpg|jpeg|png|gif"
        if (preg_match("/^" . $tipo . "\/(" . $extensoes . ")$/", $arquivo["type"])) {
            return true;
        } else {
            return false;
        }
    }

    //função para verificar resolução de arquivo
    function resolucao($arquivo, $resolucao) {
        $arquivo = getimagesize($arquivo["tmp_name"]);

        if (!empty($resolucao[0]) && !empty($resolucao[1])) {
            /* echo "<script>parent.alert('".$resolucao[0]." x ".$resolucao[1]."');</script>";
              echo "<script>parent.alert('".$arquivo[0]." x ".$arquivo[1]."');</script>"; */
            if (($arquivo[0] == $resolucao[0]) && ($arquivo[1] == $resolucao[1])) {
                return true;
            } else {
                return false;
            }
        } elseif (!empty($resolucao[0]) && empty($resolucao[1])) {
            if ($arquivo[0] == $resolucao[0]) {
                return true;
            } else {
                return false;
            }
        } else {
            return true;
        }
    }

    function imagem($arquivo, $pasta, $extensoes, $resolucao) {
        if ($this->resolucao($arquivo, $resolucao)) {
            if ($this->extensoes($arquivo, $extensoes, 'image')) {
                $ext = array_reverse(explode(".", $arquivo['name']));
                $nome = md5(uniqid(time())) . $this->estensao;
                $caminho = $this->caminho . $pasta . "/" . $nome;
                if (move_uploaded_file($arquivo['tmp_name'], $caminho)) {
                    return $nome;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

    public function upload($pasta, $files) {
        $nome_arquivo = $this->imagem($files['imagem'], $pasta, "png|jpg|gif|jpeg|pjpeg", array());
        return $nome_arquivo;
    }

    public function removeImagem($pasta, $file) {
        unlink($this->caminho . $pasta . "/" . $file);
    }

}